package com.langfeiyes.pattern.memento.demo2;

public class App {

    public static void main(String[] args) {
        //备忘录-版本控制器
        GitCaretaker caretaker = new GitCaretaker();
        //git 原发器
        GitOriginator git = new GitOriginator();
        //模拟git版本操作-第一次
        git.setContent("version1 file operator");
        //提交1次--保存一个备忘录
        IVersonCtrlMemento versonCtrlMemento1 = git.commit();
        caretaker.addMemento(versonCtrlMemento1);

        //模拟git版本操作-第二次
        git.setContent("version2 file operator");
        IVersonCtrlMemento versonCtrlMemento2 = git.commit();
        caretaker.addMemento(versonCtrlMemento2);

        //模拟git版本操作-第三次
        git.setContent("version3 file operator");
        IVersonCtrlMemento versonCtrlMemento3 = git.commit();
        caretaker.addMemento(versonCtrlMemento3);

        //查看日志
        caretaker.showLog();

        //默认恢复
        git.reset(versonCtrlMemento3);

        //指定id恢复--第一次
        git.reset(caretaker.retriveMemento(versonCtrlMemento1.getCommentId()));
    }
}
